// 表单验证工具函数

// 手机号验证
export const validatePhone = (phone) => {
  const phoneRegex = /^1[3-9]\d{9}$/
  return phoneRegex.test(phone)
}

// 邮箱验证
export const validateEmail = (email) => {
  const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/
  return emailRegex.test(email)
}

// 身份证验证
export const validateIdCard = (idCard) => {
  const idCardRegex = /^[1-9]\d{5}(18|19|20)\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/
  return idCardRegex.test(idCard)
}

// 必填项验证
export const validateRequired = (value, fieldName) => {
  if (!value || !value.trim()) {
    return `${fieldName}不能为空`
  }
  return ''
}

// 手机号验证（带错误信息）
export const validatePhoneWithError = (phone, fieldName) => {
  if (!phone) {
    return `${fieldName}不能为空`
  }
  if (!validatePhone(phone)) {
    return `请输入正确的${fieldName}`
  }
  return ''
}

// 身份证验证（带错误信息）
export const validateIdCardWithError = (idCard, fieldName) => {
  if (!idCard) {
    return `${fieldName}不能为空`
  }
  if (!validateIdCard(idCard)) {
    return `请输入正确的${fieldName}`
  }
  return ''
}

// 邮箱验证（带错误信息）
export const validateEmailWithError = (email) => {
  if (email && !validateEmail(email)) {
    return '请输入正确的邮箱格式'
  }
  return ''
}

// 日期验证
export const validateDate = (date, fieldName) => {
  if (!date) {
    return `${fieldName}不能为空`
  }
  return ''
}

// 选择项验证
export const validateSelect = (value, fieldName) => {
  if (!value) {
    return `请选择${fieldName}`
  }
  return ''
}

// 复选框验证（最多选择数量）
export const validateCheckbox = (selectedItems, fieldName, maxCount = 4) => {
  if (!selectedItems || selectedItems.length === 0) {
    return `请选择${fieldName}`
  }
  if (selectedItems.length > maxCount) {
    return `${fieldName}最多只能选择${maxCount}项`
  }
  return ''
} 